double vs extended

Otázka od: Kevin Macka

20. 11. 2002 14:26

dobry den,

prave resim problem nejakeho divneho zaokrouhlovani pri pouziti typu
real.

nasledujici kod se totiz dostane do stavu kdy po prevodu StrToFloat
je result <> 12.45. coz je ale nejake divne protoze v editu je prave
hodnota 12,45.
jak je to mozne?
ps: kdyz misto typu double pouziju extended tak je vse v poradku

function StrToFloatDef( s : string; default : double ) : double;
begin
  if trim( s ) = '' then begin
    result := default;
    exit;
  end;
  try
    result := StrToFloat( s );
    if result <> 12.45 then
      ShowMessage( 'result <> 12.45' );
  except
    result := default;
  end;
end;

procedure TForm1.ButtonClick(Sender: TObject);
var r : double;
begin
  Edit1.Text := '12,45';
  r := StrToFloatDef( Edit1.Text, 0 );
  ShowMessage( FloatToStr( r ) );
end;

Karel

______________________________________________________________________
Reklama:
Poctenicko pro kazdy den: http://www.novinky.cz

Odpovedá: Peter Surovy

20. 11. 2002 16:37

Mozno pisem blbost ale:

----- Original Message -----
From: "Kevin Macka" <Kevin.Macka@seznam.cz>
Sent: Wednesday, November 20, 2002 12:59 PM
> nasledujici kod se totiz dostane do stavu kdy po prevodu StrToFloat
> je result <> 12.45. coz je ale nejake divne protoze v editu je prave
> hodnota 12,45.

--- nebude problem tu? 12.45 <> 12,45 (ciarka a bodka)

PS